package cc.rengu.igas.cops.common.dao;


import cc.rengu.igas.cops.common.entity.CopsMchntBindInfo;

import java.util.List;

/**
 * 商户绑定信息操作接口.
 */
public interface CopsMchntBindInfoMapper {

    /**
     * 根据用户标识查询商户绑定信息
     * `     *
     *
     * @param instId 机构标识
     * @param userId 用户标识
     * @return 商户绑定信息
     * @throws Exception 异常
     */
    List<CopsMchntBindInfo> selectCopsMchntBindInfoListByUserId(String instId, String userId) throws Exception;


    /**
     * 根据角色查询商户绑定信息
     *
     * @param instId  机构标识
     * @param mchntNo 用户标识
     * @return 商户绑定信息
     * @throws Exception 异常
     */
    List<CopsMchntBindInfo> selectCopsMchntBindInfoByMchntNo(String instId, String mchntNo) throws Exception;

    /**
     * 根据传入商户号作为商户号（MCHNT_NO），连锁门店号（CHAIN_MCHNT_NO）查询商户绑定信息
     *
     * @param instId       机构标识
     * @param mchntNo      商户号
     * @param chainMchntNo 连锁商户号
     * @return 商户绑定信息
     * @throws Exception 异常
     */
    List<CopsMchntBindInfo> selectCopsMchntBindInfoByMchntNoAndChainMchntNo(String instId, String mchntNo, String chainMchntNo) throws Exception;


    /**
     * 插入商户绑定关系表
     *
     * @param mchntBindInfo 商户绑定关系
     * @return 结果
     * @throws Exception 异常
     */
    int insertCopsMchntBindInfo(CopsMchntBindInfo mchntBindInfo) throws Exception;


    /**
     * 根据用户标识，商户号查询商户绑定信息
     *
     * @param instId  机构标识
     * @param userId  用户标识
     * @param mchntNo 商户号
     * @return 商户绑定信息
     * @throws Exception 异常
     */
    CopsMchntBindInfo selectCopsMchntBindInfoListByUserIdAndMchntNo(String instId, String userId, String mchntNo) throws Exception;


    /**
     * 更新商户绑定信息
     *
     * @param mchntBindInfo 用户信息
     * @return 0-成功，其它-失败
     */
    int updateCopsMchntBindInfoByPrimaryKey(CopsMchntBindInfo mchntBindInfo) throws Exception;

    /*
    商户绑定表查询根据主键
    @param instID
    @param bandMchntType
    @param mchntNo
     */

    CopsMchntBindInfo selectMchntBindInfoByMchntNo(String instId, String bindMchntType, String mchntNo) throws Exception;


}
